empresa(base).
funcionario(base, id2).
id(id2, '10').
nome(id2, 'joao').
salario(id2, 1600).
cargo(id2, 'analista de sistemas').
depto(id2, 'tecnologia da informacao').
filial(id2, 'juiz de fora').
funcionario(base, id3).
id(id3, '14').
nome(id3, 'pedro').
salario(id3, 1900).
cargo(id3, 'suporte help desk').
depto(id3, 'tecnologia da informacao').
filial(id3, 'juiz de fora').
funcionario(base, id4).
id(id4, '24').
nome(id4, 'jose').
salario(id4, 2000).
cargo(id4, 'programador').
depto(id4, 'tecnologia da informacao').
filial(id4, 'sao paulo').
funcionario(base, id5).
id(id5, '34').
nome(id5, 'maria').
salario(id5, 3900).
cargo(id5, 'gerente').
depto(id5, 'vendas').
filial(id5, 'rio de janeiro').
funcionario(base, id6).
id(id6, '44').
nome(id6, 'ana').
salario(id6, 3000).
cargo(id6, 'vendedor').
depto(id6, 'vendas').
filial(id6, 'niteroi').
funcionario(base, id7).
id(id7, '48').
nome(id7, 'tiago').
salario(id7, 3000).
cargo(id7, 'vendedor').
depto(id7, 'vendas').
filial(id7, 'niteroi').

empresa(modificado).
funcionario(modificado, id8).
id(id8, '10').
nome(id8, 'joao').
salario(id8, 2500).
cargo(id8, 'analista de sistemas pleno').
depto(id8, 'tecnologia da informacao').
filial(id8, 'juiz de fora').
funcionario(modificado, id9).
id(id9, '14').
nome(id9, 'pedro').
salario(id9, 1900).
cargo(id9, 'suporte help desk').
depto(id9, 'tecnologia da informacao').
filial(id9, 'sao paulo').
funcionario(modificado, id10).
id(id10, '24').
nome(id10, 'jose').
salario(id10, 2000).
cargo(id10, 'desenvolvedor').
depto(id10, 'tecnologia da informacao').
filial(id10, 'sao paulo').
funcionario(modificado, id11).
id(id11, '34').
nome(id11, 'maria').
salario(id11, 3900).
cargo(id11, 'gerente').
depto(id11, 'marketing').
filial(id11, 'rio de janeiro').
funcionario(modificado, id12).
id(id12, '44').
nome(id12, 'ana').
salario(id12, 3900).
cargo(id12, 'vendedor').
depto(id12, 'vendas').
filial(id12, 'niteroi').
funcionario(modificado, id13).
id(id13, '48').
nome(id13, 'tiago').
salario(id13, 4000).
cargo(id13, 'gerente').
depto(id13, 'vendas').
filial(id13, 'rio de janeiro').
funcionario(modificado, id14).
id(id14, '49').
nome(id14, 'junior').
salario(id14, 4000).
cargo(id14, 'gerente').
depto(id14, 'vendas').
filial(id14, 'rio de janeiro').

mesmo_elemento(Fb,Fm,ID):-funcionario(base,Fb),funcionario(modificado,Fm),id(Fb,ID),id(Fm,ID).
%recebeu_aumento(NOME):-mesmo_elemento(Fb,Fm,ID),salario(Fb,SALARIOBase),salario(Fm,SALARIOBase),SALARIOBase<SALARIOBase,nome(Fb,NOME).
mesmo_id(Fb,Fm,Nome) :-
   funcionario(base,Fb),funcionario(modificado,Fm),  id(Fb,ID),id(Fm,ID),   nome(Fb,Nome).

mesmo_salario(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   salario(Fb,S),salario(Fm,S),
   nome(Fb,Nome).

mesmo_cargo(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   cargo(Fb,C),cargo(Fm,C),
   nome(Fb,Nome).

mesmo_depto(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   depto(Fb,D),depto(Fm,D),
   nome(Fb,Nome).

mesma_filial(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   filial(Fb,F),filial(Fm,F),
   nome(Fb,Nome).

recebeu_aumento(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   salario(Fb,Sb),salario(Fm,Sm),
   mesmo_cargo(Nome),
   Sb<Sm.

foi_promovido(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   salario(Fb,Sb),salario(Fm,Sm),
   cargo(Fb,Cb),cargo(Fm,Cm),
   Sb<Sm,Cb \== Cm.

nova_funcao(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   mesmo_salario(Nome),
   cargo(Fb,Cb),cargo(Fm,Cm),
   Cb \== Cm.

foi_transferido(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   filial(Fb,Filb),filial(Fm,Film),
   Filb \== Film.

novo_depto(Nome) :-
   mesmo_id(Fb,Fm,Nome),
   depto(Fb,Db),depto(Fm,Dm),
   Db \== Dm.

foi_promovido_e_transferido(Nome) :-
   foi_transferido(Nome),
   foi_promovido(Nome).

existe_modificado(NOME):-
	funcionario(modificado,ID),
	nome(ID,NOME).

existe_base(NOME):-
	funcionario(base,ID),
	nome(ID,NOME).

novo_elemento(X):-
	existe_modificado(X),not(existe_base(X)).

elemento_excluido(X):-
	existe_base(X),not(existe_modificado(X)).





